1. Field of the Invention
The present invention generally relates to processing requests over computer networks and more particularly to an improved system that uses a grid services scheduler to divide a client request into many tasks. The system executes the tasks through multiple objects within a grid object array, the objects are within containers that make up a grid container array, and the grid container array is controlled by a micro scheduler.
2. Description of the Related Art
It can be stated that Grid computing is a logical evolution of Cluster computing. The following examines this statement using the Globus toolkit (available from Argonne National Laboratory, located in Chicago, Ill., USA) as a point of reference for the implementation of Grid architecture. In considering the Globus toolkit, it should be pointed out that this technology is evolving at a very fast rate, and there are very significant differences at each release. In particular, the Globus 3.0 architecture is a huge leap, due to the fact that it is based on the Open Grid Services Architecture standard. Therefore, in discussing Globus it is necessary to state the exact release in order to set the context for discussion.
Consider the Globus 2.0 implementation, for example, which predates the introduction of the Open Grid Services Architecture (OGSA). In examining the Globus 2.0 architecture, it soon becomes clear that it defines the Grid as a “cluster of clusters”. This compounded perspective has been expressed since the inception of the Globus program; the old term used for Grid computing was “Meta-computing”; a reference to the compounded nature of the multi cluster architecture. The “cluster of clusters” perspective is consistent with the initial objectives of the Globus program: to unite, in a single infrastructure, the several clusters located in the geographically disperse National Laboratories. This perspective also makes a lot of sense when considering the scalability of the Grid. Adding individual hosts to a Grid would soon result in an unmanageable infrastructure, and it is a logical step to group the hosts in separately managed groups. The “cluster of clusters” paradigm provides a two tiered hierarchy which greatly simplifies the administration of the Grid.
However, two limitations of the “cluster of clusters” paradigm became immediately apparent. The first is that this scheme was inherently two-tiered. That is, it could only support a two-tiered hierarchy, and it was necessary to make extensions to the original framework in order to support deeper hierarchies. The second limitation is that there was no central facility for scheduling tasks across the entire Grid; that is, there was no meta-scheduler. Each individual cluster was configured with a cluster scheduler which had the authority to schedule tasks in that cluster, but it soon became clear that a Grid scheduler (or meta-scheduler) was necessary to schedule tasks across the entire Grid. The main difficulty in the design of such a scheduler is that in the original Globus toolkit (versions 2.0 and lower) there is a discontinuity between the Grid world and the cluster scheduling world. In particular, different scheduling technologies and protocols were used for task scheduling within a cluster and among clusters. The invention described below proposes a unifying task scheduling domain for both the Grid and cluster domains, and it is therefore capable of seamlessly supporting very deep hierarchical Grids.